<?php
final class MySQL {
	private $connection;
	
	public function __construct($hostname, $username, $password, $database) {
		if (@!$this->connection = mysql_connect($hostname, $username, $password)) {
      		$this->errormsg = 'Not connect server ! Нет соединения с базой данных !';
			$this->error();
    	}

    	if (@!mysql_select_db($database, $this->connection)) {
      		$this->errormsg = 'Not selected DB ! Не возможно выбрать БД !';
			$this->error();
    	}
		
		mysql_query("SET NAMES 'utf8'", $this->connection);
		mysql_query("SET CHARACTER SET utf8", $this->connection);
		mysql_query("SET CHARACTER_SET_CONNECTION=utf8", $this->connection);
		mysql_query("SET SQL_MODE = ''", $this->connection);
  	}
		
  	public function query($sql) {
		$resource = mysql_query($sql, $this->connection);

		if ($resource) {
			if (is_resource($resource)) {
				$i = 0;
    	
				$data = array();
		
				while ($result = mysql_fetch_assoc($resource)) {
					$data[$i] = $result;
    	
					$i++;
				}
				
				mysql_free_result($resource);
				
				$query = new stdClass();
				$query->row = isset($data[0]) ? $data[0] : array();
				$query->rows = $data;
				$query->num_rows = $i;
				
				unset($data);

				return $query;	
    		} else {
				return TRUE;
			}
		} else {
      		$this->errormsg = $sql;
			$this->error();
    	}
  	}
	
	public function escape($value) {
		return mysql_real_escape_string($value, $this->connection);
	}
	
  	public function countAffected() {
    	return mysql_affected_rows($this->connection);
  	}

  	public function getLastId() {
    	return mysql_insert_id($this->connection);
  	}	
	
	public function __destruct() {
		@mysql_close($this->connection);
	}
	
	function geterrdesc(){
		return $this->error = mysql_error();
	}
	
	function geterrno(){
		return $this->errno = mysql_errno();
	}
	
	function error(){
		print "<HTML>\n";
		print "<HEAD>\n";
		print "<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=\"utf-8\"\">\n";
		print "<TITLE>OpenCart MySQL Debugging</TITLE>\n";
		print "</HEAD>\n";
		print "<div style=\"border:1px dotted #000000; font-size:11px; font-family:tahoma,verdana,arial; background-color:#f3f3f3; color:#A73C3C; margin:5px; padding:5px;\">";
		print "<b><font style=\"color:#666666;\">OpenCart MySQL Debugging</font></b><br /><br />";
		print "<li><b>SQL.q :</b> <font style=\"color:#666666;\">".$this->errormsg."</font></li>";
		print "<li><b>MySQL.e :</b> <font style=\"color:#666666;\">".$this->geterrdesc()."</font></li>";
		print "<li><b>MySQL.e.№ :</b> <font style=\"color:#666666;\">".$this->geterrno()."</font></li>";
		print "<li><b>PHP.v :</b> <font style=\"color:#666666;\">".phpversion()."\n</font></li>";
		print "<li><b>Data :</b> <font style=\"color:#666666;\">".date("d.m.Y H:i")."\n</font></li>";
		print "<li><b>Script :</b> <font style=\"color:#666666;\">".getenv("REQUEST_URI")."</font></li>";
		print "<li><b>Refer :</b> <font style=\"color:#666666;\">".getenv("HTTP_REFERER")."</li></div>";
		print "</BODY>\n";
		print "</HTML>";
		exit();
	}
}
?>